package org.ohuyo.libra.client.session;

import org.ohuyo.libra.client.exception.LibraClientException;

/**
 * libra session
 * 
 * @author rabbit
 * @since 2011-9-26
 */
public interface LibraSession {

	public static String NAME = LibraSession.class.getName().replace('.', '_');

	public String getLoginTicket();

	public String getAppCode();

	public String getAppTicket();

//	/**
//	 * Ӧ��IP
//	 */
//	public String getAppIp();
//
//	/**
//	 * Ӧ�ö˿�
//	 */
//	public int getAppPort();

	public String getCustId();

	public String getCustIdType();

	public String getJumpTicket();

	public String getClientTicket();

	/**
	 * �ͻ��˵�ַ <br>
	 * the Internet Protocol (IP) address of the client or last proxy that sent
	 * the request
	 */
	public String getRemoteAddr();

	/**
	 * ��תƱ��(���棬����Ӧ�ø�������Ч)
	 */
	@Deprecated
	public String getAttachment();

	/**
	 * �ͻ��ڵ�½ʱʹ�õĵ�ַ<br>
	 * the Internet Protocol (IP) address of the client or last proxy that sent
	 * the request
	 */
	public String getLoginAddr();

	/**
	 * 
	 * @return
	 */
	public String getkeepAliveUrl();

	/**
	 * ����һ������
	 * 
	 * @param targetAppCode
	 * @param key
	 * @param value
	 */
	public void setAttribute(String targetAppCode, String key, String value)
			throws LibraClientException;

	/**
	 * ���ù�������
	 * 
	 * @param key
	 * @param value
	 */
	public void setSharedAttribute(String key, String value)
			throws LibraClientException;

	/**
	 * ����һ��������
	 * 
	 * @param targetAppCode
	 * @param key
	 * @param value
	 */
	public void setDisposableAttribute(String targetAppCode, String key,
			String value) throws LibraClientException;

	public String getAttribute(String srcAppCode, String targetAppCode,
			String key) throws LibraClientException;

	public String getSharedAttribute(String srcAppCode, String key)
			throws LibraClientException;

	public String getDisposableAttribute(String srcAppCode,
			String targetAppCode, String key) throws LibraClientException;

	//add by zp on 20171024
	public String getLoginName();
	
	public String getUserName();
	
	public String getMenuList();
	
	public String getOrgList();
	//end
}
